package com.anyou.mall.use.service;

import java.util.List;

import com.anyou.mall.index.param.MsgParam;
import com.anyou.mall.index.param.UserMsgParam;
import com.anyou.mall.use.domain.UserSystemNotice;

/**
 * 用户消息Service接口
 *
 * @author gaochaohao
 * @date 2022-04-22
 */
public interface IUserSystemNoticeService
{
    /**
     * 查询用户消息
     *
     * @param systemNoticeId 用户消息主键
     * @return 用户消息
     */
    public UserSystemNotice selectUserSystemNoticeBySystemNoticeId(Long systemNoticeId);

    /**
     * 查询用户消息列表
     *
     * @param userSystemNotice 用户消息
     * @return 用户消息集合
     */
    public List<UserSystemNotice> selectUserSystemNoticeList(UserSystemNotice userSystemNotice);

    /**
     * 新增用户消息
     *
     * @param userSystemNotice 用户消息
     * @return 结果
     */
    public int insertUserSystemNotice(UserSystemNotice userSystemNotice);

    /**
     * 修改用户消息
     *
     * @param userSystemNotice 用户消息
     * @return 结果
     */
    public int updateUserSystemNotice(UserSystemNotice userSystemNotice);

    /**
     * 批量删除用户消息
     *
     * @param systemNoticeIds 需要删除的用户消息主键集合
     * @return 结果
     */
    public int deleteUserSystemNoticeBySystemNoticeIds(Long[] systemNoticeIds);

    /**
     * 删除用户消息信息
     *
     * @param systemNoticeId 用户消息主键
     * @return 结果
     */
    public int deleteUserSystemNoticeBySystemNoticeId(Long systemNoticeId);

    /**
     * 消息列表
     * @param param
     * @return
     */
    List<UserSystemNotice> getMsgList(UserMsgParam param);

    /**
     * 消息已读
     * @param param
     */
    void userReadMsg(MsgParam param);

    /**
     * 消息数量
     * @param userMsgParam
     * @return
     */
    Integer countMsgList(UserMsgParam userMsgParam);

}
